package com.example.music.config;

import com.example.music.util.Constant;
import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 * Created with IntelliJ IDEA.
 * ClassName: LoginInterceptor
 * Package: com.example.music.config
 * Description:
 * User: fzykd
 *
 * @Author: LQH
 * Date: 2023-04-12
 * Time: 17:06
 */

public class LoginInterceptor implements HandlerInterceptor {

    @Override
    public boolean preHandle(HttpServletRequest request,
                             HttpServletResponse response, Object handler) throws Exception {

        //通过Session检查登录没有
        HttpSession httpSession = request.getSession(false);
        if (httpSession != null && httpSession.getAttribute(Constant.USERINFO_SESSION_KEY) != null){
            //表示已经登录 ture表示拦截判断通过
            return true;
        }

        return false;

        /*
        配置拦截器步骤
        1.自定义拦截器 实现 Spring中 HandlerInterceptor 接口
        重写preHandle方法 通过获取Session来 来判断是否登录
        2.这个类只是实现了接口 并重写了方法 还要将该类加入到框架中 并配置拦截规则
        这个类也要实现一个接口 WebMvcConfigurer 并且 重写addInterceptors方法 中设置拦截规则
         */
    }
}
